$(document).ready(function(){
	var server = "cdt"//服务器api（测试机testapi，正式机cdt）
	var t = undefined;//循环访问服务器
	var t2 = undefined;//循环访问服务器
	var t3 = undefined;//循环访问服务器
	var taskId = undefined;//添加任务后服务器返回任务的Id
	var getUserType = 0;//获取用户的类型，0：判断用户金额差后判断调用租借或购线，1：更新用户金额
	var buyType = parseInt($('.buyType').val());//页面类型，1为租借充电宝，2为购买iphone5线，3为购买安卓线，4为购买iphone4线
	var device = undefined;//扫描二维码后解析出的设备号
	var lineType = undefined;//数据线类型2：购买iphone5线，3：购买iphone4线，4：购买安卓线
	var isTask = 0;//1为租借充电宝 1为购买数据线
	var money = $('.money').val().replace(new RegExp(',',"gm"),'');//用户剩余的金额
	var btnType = undefined;//提示框按钮点击类型，0：充值，1：直接出线
	var userPresentMoney = $('.presentMoney').val().replace(new RegExp(',',"gm"),'');//用户赠送金额
	var isInborrowByLine = 0;//1：用户正在购线 2：用户正在租借充电宝
	var requestTime = 0;//判断访问超时
	var iphone5LineCnt = 0;//服务器端返回数据线数量
	var iphone4LineCnt = 0;//服务器返回数据线数量
	var androidLineCnt = 0;//服务器返回数据线数量
	var isHaveCdb = 0;//是否含有充电宝
	var lastParameter = "&platform=WXGZH&version=1.0"//访问接口带的尾部参数
	var borrowCDBMoney = 10000;//用户租借充电宝押金
	var buyLineMoney = 1000;//用户购买数据线金额
	var presentLineBuyCnt = 0;//赠送用户免费购线次数
	var isEnough = 0;//判断用户是否有足够金额购线或租借充电宝
	var shortMoney = 0;//用户如果没有足够金额，租借充电宝或购线
	var popMessage = "";//服务器返回提示框信息展示
	var presentMoneyTimes = -1;//用户是否第一次充值

	//查询用户信息
	$.selectUser = function(){
		$.getJSON("/"+server+"/UserGet?access_token="+$('.access_token').val()+lastParameter,function(json){
			//服务器返回用户是否充值过并记录
			if(presentMoneyTimes == -1){
				presentMoneyTimes = json.user.presentMoneyTimes;
 			}	
 			//记录用户是否拥有免费购线机会		
 			presentLineBuyCnt = json.user.cnt.presentLineBuyCnt;
 			//判断服务器返回用户金额是否与用户之前的金额不同
			if(money != parseInt(json.user.money) && getUserType == 0){
				//停止循环访问用户信息接口
				clearInterval(t2);
				//记录下用户金额
				money = parseInt(json.user.money)+parseInt(json.user.presentMoney);
				//记录用户赠送金额
				userPresentMoney = parseInt(json.user.presentMoney);
				//判断用户充值之后是进行购线或者租借充电宝
				if(isTask > 0){
					if(isTask == 1){
						$.taskAdd();
						isTask = 0;
					}
					else if(isTask == 2){
						$.taskAddBuyLine();
						isTask = 0;
					}
				}
			}
			//刷新用户金额等信息
			else if(getUserType == 1){
				//记录下用户金额
				money = parseInt(json.user.money)+parseInt(json.user.presentMoney);
				//记录用户赠送金额
				userPresentMoney = parseInt(json.user.presentMoney);
			}
		})
		.fail(function() {
    		$.prompt('',1,'','网络超时',1,1,6000);
  		})
	}

	//查询购买记录
	$.selectBuy = function(){
		//判断循环访问时间是否超过30秒
		if(requestTime >= 17){
			//停止循环访问用户信息接口
			clearInterval(t2);
			//停止循环访问任务接口
			clearInterval(t);
			$('.scan').removeAttr("disabled");	
			$.prompt('',1,'','网络超时',1,1,6000);
			//充值超时访问时间
			requestTime=0;
			return false;
		}
		//叠加访问接口次数
		requestTime = requestTime+1;
		//访问获取任务处理结果接口
		$.getJSON("/"+server+"/taskGet?access_token="+$('.access_token').val()+"&taskId="+taskId+lastParameter,function(json){
			//如果返回结果是租借成功
			if(json.taskModel.status == 1 && buyType == 1){
				//停止循环访问任务
				clearInterval(t);	
				//设置查询用户接口类型为更新用户信息
				getUserType = 1;
				//更新用户信息
				$.selectUser();
				$('.scan').removeAttr("disabled");	
				//如果用户正在租借充电宝
				if(isInborrowByLine == 0 && json.taskModel.popType == 0){
					//如果用户第一次充值，或者拥有免费购线机会
					if(presentLineBuyCnt > 0 || presentMoneyTimes == 0){
						//展示购线选择
						if(presentMoneyTimes == 0 && presentLineBuyCnt <= 0){
							//如果高收费模式不赠送数据线，显示数据线价格
							$('.alertContent p').text('购买数据线需要'+buyLineMoney/100+'元');
						}
						presentMoneyTimes = 1;
						$('.prompt').hide();
						$('.prompt3').show();
					}		
					else{
						//直接提示用户租借成功
						$.prompt('租借成功',1,'','请取走机器吐出的充电宝',3,1,6000);
						wx.closeWindow();
					}
				}
				//购买数据线提示
				else if(isInborrowByLine == 1  && json.taskModel.popType == 0){
					//提示用户购线成功
					$.prompt('购线成功',1,'','请取走机器吐出的数据线',3,1,6000);	
					isInborrowByLine = 0;				
				}
				else if(json.taskModel.popType != 0){
					var promptStr = '<p style="margin-top:-0.5em">'+
									'<span class="font1">租借成功</span>'+
									'<br/>'+
									'<span class="font2" style="font-size:0.7em">'+json.taskModel.popMessage+'</span>'+
									'</p>'					
					$.prompt(promptStr,4,'','确定',2,1,null);	
				}
				requestTime=0;
			}
			else if(json.taskModel.status == 1){
				clearInterval(t);
				$('.scan').removeAttr("disabled");	
				getUserType = 1;
				$.selectUser();
				$.prompt('购线成功',1,'','请取走机器吐出的数据线',3,1,null);
				requestTime=0;
			}
			else if(json.taskModel.popType == 1){
				clearInterval(t);	
				$('.scan').removeAttr("disabled");
				$.prompt('',1,'',json.taskModel.popMessage,1,1,6000);	
				requestTime=0;
			}			
		})
	}

	//拉起支付
	$.prepaid = function(amount){
			            var xhr = new XMLHttpRequest();
			            //获取支付JSON数据
			            xhr.open("GET", "/"+server+"/chargeCreate?access_token="+$('.access_token').val()+"&channel=wx_pub&amount="+amount, true);
			            xhr.send();
			            //调用微信支付
			            xhr.onreadystatechange = function () {
			                if (xhr.readyState == 4 && xhr.status == 200) {
			                	//展示充值loding
								$.prompt('正在充值',1,'','正在充值请稍后',4,0,null);
			                    pingpp.createPayment(xhr.responseText, function(result, err) {
			                    	if(result == "success"){
			                    		//设置为获取用户信息并调用租借充电宝或者购线逻辑
			                    		getUserType = 0;
			                    		//判断用户正在租借充电宝或者购线
			                    		if((isTask == 2 && buyType == 1) || buyType != 1){
			                    			$.prompt('正在响应',1,'','请查看机器是否吐出充电线',4,0,null);
			                    		}
										else if(buyType == 1){
											$.prompt('正在响应',1,'','请查看机器是否吐出充电宝',4,0,null);		
										}
										//执行循环访问用户信息接口
						    			t2 = window.setInterval("$.selectUser()",2000); 
						    		}
								    else if (result == "fail") {
								    	//充值失败展示
								        $.prompt('',1,'','充值失败',1,1,6000);
								        $.getJSON("/"+server+"/taskAddError",function(json){
								        }); 
								    } 
								    else if (result == "cancel") {
								    	//取消充值展示
								    	$.prompt('',1,'','取消充值',1,1,6000);
								        // 微信公众账号支付取消支付
								    }						    					                        
			                    });
			                }
			            }		
	}

	//购买充电线
	$.taskAddBuyLine = function(){
				// alert("buyline");
				$.getJSON("/"+server+"/taskAddBuyLine?access_token="+$('.access_token').val()+"&terminal="+device+"&lineType="+lineType+lastParameter,function(json){
					if(json.result == 1){
					    taskId = json.taskId
					    $('.scan').attr("disabled","true");
					    //设置获取用户信息类型为更新用户信息
					    getUserType = 0;
						$.prompt('正在响应',1,'','请查看机器是否吐出充电线',4,0,null);	
						//循环查询购买任务处理结果
					    t = window.setInterval("$.selectBuy()",2000);
					}
					else{
						//购买失败设置回提示框类型为初始状态
						isInborrowByLine = 0;
					    $.prompt('',1,'',json.msg,1,1,6000);
					}
				}); 				
	}

	//租借充电宝
	$.taskAdd = function(){
				// alert("borrow");
				$.getJSON("/"+server+"/taskAdd?access_token="+$('.access_token').val()+"&terminal="+device+lastParameter,function(json){
					   	if(json.result == 1){
					    taskId = json.taskId
					    $('.scan').attr("disabled","true");
					    //设置获取用户信息类型为更新用户信息
					    getUserType = 0;
						$.prompt('正在响应',1,'','请查看机器是否吐出充电宝',4,0,null);					    
						//循环查询租借任务处理结果	
					    t = window.setInterval("$.selectBuy()",2000); 		
					}
					else{
			    		$.prompt('',1,'',json.msg,1,1,6000);					    
					}
				}); 		
	}

	//如果设备为高收费模式，点击按钮后触发租借逻辑或者购线逻辑
    $('.go-pay-button').click(function(){
        $('.device-pay').hide();
        $('.promptBg').hide();
		if(isEnough == 1){
				$.taskAdd();
		}
		else{
				btnType = 0;
				$.prompt('<p><span class="font1">'+popTitle+'</span><br/><span class="font2">'+popMessage+'</span></p>',2,'取消','支付押金',2,0,null)
				$('.prompt .describe').hide();
		}	
    })	

    //购线逻辑
    $.clickBuyLineFucntion = function(){
							if(buyType == 2){
								lineType = 1;
							}
							else if(buyType == 3){
								lineType = 3
							}
							else if(buyType == 4){
								lineType = 2;
							}    	

    	//获取服务器是否有足够的线等信息
	    $.getJSON("/"+server+"/deviceCheckLineAndCDB?access_token="+$('.access_token').val()+"&terminal="+device+"&type=2&lineType="+lineType+lastParameter,function(json){	
	    					//设置充电宝押金
							borrowCDBMoney = parseFloat(json.deviceCharge.borrowCDBMoney)*100;
							//设置购线金额
							buyLineMoney = parseFloat(json.deviceCharge.buyLinePay)*100;	
							//获取线数量
							iphone5LineCnt = json.iPhone5;
							iphone4LineCnt = json.iPhone4;
							androidLineCnt = json.Android;
							//用户是否有足够金额购买
							isEnough = 	parseFloat(json.isEnough);
							//设置用户应该充值多少钱用于租借或者购线
							shortMoney = parseFloat(json.shortMoney);						
							//设置提示框信息
							popMessage = json.popMessage;
							//设置提示框标题
							popTitle = json.popTitle;


						    
						    $(this).css('background','url(/static/images/buyline1.png) no-repeat').css('background-size','100% 100%'); 
						    //判断用户是否有足够资格购线与是否有足够的线
						    if(isEnough == 1 && json.result == 1){
						    			promptStr = "";
							    		if(popTitle == ""){
											promptStr = '<p>'+
														'<span class="font2">'+popMessage+'</span>'+
														'</p>'
							    		}
							    		else{
											promptStr = '<p>'+
														'<span class="font1">'+popTitle+'</span>'+
														'<br/>'+
														'<span class="font2">'+popMessage+'</span>'+
														'</p>'
							    		}

						    			//用户二次确认购线
							    		$.prompt(
												promptStr
							    			,2,'取消','确定',2,0,null)
							    		$('.prompt .describe').hide();	
							    		btnType = 1;

										isInborrowByLine = 1;							    								    		
						    }
						    else{
						    		//如果用户余额不足提示充值
						    		if(json.result == 1){
						    			promptStr = "";
							    		if(popTitle == ""){
											promptStr = '<p>'+
														'<span class="font2">'+popMessage+'</span>'+
														'</p>'
							    		}
							    		else{
											promptStr = '<p>'+
														'<span class="font1">'+popTitle+'</span>'+
														'<br/>'+
														'<span class="font2">'+popMessage+'</span>'+
														'</p>'
							    		}						    			
							    		btnType = 0;
							    		$.prompt(
												promptStr
							    			,2,'取消','充值',2,0,null)
							    		$('.prompt .describe').hide();
							    		if(popTitle == ""){
							    			$('.prompt .font1').hide();	
							    		}
							    		else{
							    			$('.prompt .font1').show();		
							    		}							    		
							    	}
							    	//提示线不足
									else{
										var promptStr = '<p>'+
														'<span class="font2" style="font-size:0.7em">'+json.msg+'</span>'+
														'</p>'					
										$.prompt(promptStr,4,'','确定',2,1,null);										
									}				    	
						    }					
						})	
    }


	//点击扫码
	$('.scan').bind('click',function(){
		// alert("scan")
		getUserType = 1;
		$.selectUser();		
		if(buyType == 1){
			$(this).css('background','url(/static/images/borrow2.png) no-repeat').css('background-size','100% 100%');  
		}
		else{
			$(this).css('background','url(/static/images/buyline2.png) no-repeat').css('background-size','100% 100%');  
		}
		wx.scanQRCode({
		    needResult: 1, // 默认为0，扫描结果由微信处理，1则直接返回扫描结果，
		    scanType: ["qrCode"], // 可以指定扫二维码还是一维码，默认二者都有
		    success: function (res) {
		    	var result = res.resultStr; // 当needResult 为 1 时，扫码返回的结果
		    	//存储返回设备号
		    	device = result.split('qrcode=')[1];
		    	//租借充电宝
		    	if (buyType == 1) {
		    		//获取设备是否有充电宝
					$.getJSON("/"+server+"/deviceCheckLineAndCDB?access_token="+$('.access_token').val()+"&terminal="+device+"&type=1"+lastParameter,function(json){
						if(json.result == 1){						
	    					//设置充电宝押金
							borrowCDBMoney = parseFloat(json.deviceCharge.borrowCDBMoney)*100;
							//设置购线金额
							buyLineMoney = parseFloat(json.deviceCharge.buyLinePay)*100;	
							//获取线数量
							iphone5LineCnt = json.iPhone5;
							iphone4LineCnt = json.iPhone4;
							androidLineCnt = json.Android;
							//用户是否有足够金额购买
							isEnough = 	parseFloat(json.isEnough);
							//设置用户应该充值多少钱用于租借或者购线
							shortMoney = parseFloat(json.shortMoney);						
							//设置提示框信息
							popMessage = json.popMessage;
							//设置提示框标题
							popTitle = json.popTitle;

							//如果类型为高收费模式弹出提示
                            if(json.deviceCharge.chargeType == 2){
                                $('.device-pay .device-terminal').text(json.terminal);
                                $('.device-pay .shop-name').text(json.shop.name);
                            	$('.borrow-pay-title').text(json.deviceCharge.borrowPayTitle);
                            	$('.hour-pay-title').text(json.deviceCharge.hourPayTitle);
                            	$('.max-pay-title').text(json.deviceCharge.maxPayTitle);                                
                                $('.device-pay .gratis-time').text(json.deviceCharge.borrowPay+"元");
                                $('.device-pay .hour-pay').text(json.deviceCharge.hourPayStr);
                                $('.device-pay .max-pay').text(json.deviceCharge.dayMaxPayStr);
                                $('.device-pay .vip-gratis-time').text(json.deviceCharge.borrowPay+"元");
                                $('.device-pay .vip-hour-pay').text(json.deviceCharge.vipHourPayStr);
                                $('.device-pay .vip-max-pay').text(json.deviceCharge.vipDayMaxPayStr);
                                $('.device-pay .annotation').text(json.deviceCharge.annotation);
                                $('.device-pay').show();
                                $('.promptBg').show();
						    }
						    else{
					    		$(this).css('background','url(/static/images/borrow1.png) no-repeat').css('background-size','100% 100%');
					    		//判断余额是否足够支付押金
						    	if(isEnough == 1){
						    		$.taskAdd();
						    	}
						    	else{
						    			promptStr = "";
							    		if(popTitle == ""){
											promptStr = '<p>'+
														'<span class="font2">'+popMessage+'</span>'+
														'</p>'
							    		}
							    		else{
											promptStr = '<p>'+
														'<span class="font1">'+popTitle+'</span>'+
														'<br/>'+
														'<span class="font2">'+popMessage+'</span>'+
														'</p>'
							    		}							    		
							    		btnType = 0;
							    		$.prompt(promptStr,2,'取消','支付押金',2,0,null)
							    		$('.prompt .describe').show();
							    		if(popTitle == ""){
							    			$('.prompt .font1').hide();	
							    		}
							    		else{
							    			$('.prompt .font1').show();		
							    		}							    		
						    	}							    	
						    }
						}
						else{
							$.prompt(json.msg,1,'','请到其它设备租借',1,1,null);
						}
					})		    		
			    }
			    //购买数据线
			    else{
			    	//获取设备数据线数量
					$.clickBuyLineFucntion()
			    }
			    
			}
		});	
	});

	

	$('.yes').bind('click',function(){
		//按钮类型为充值
		if(btnType == 0){
			if(buyType == 1 && isInborrowByLine == 0){
				isTask = 1;		
				if(shortMoney != 0){
					$.prepaid(shortMoney);
				}
				else{
					$.prepaid(borrowCDBMoney);
				}
			}
			else if(buyType == 2 || buyType == 3 || buyType == 4 || isInborrowByLine == 1){
				isTask = 2;		
				if(shortMoney != 0){
					$.prepaid(shortMoney);
				}
				else{
					$.prepaid(borrowCDBMoney);
				}
			}
			$('.prompt').hide();
			$('.promptBg').hide();			
		}
		//按钮类型为直接出线
		else if(btnType == 1){
			$.taskAddBuyLine();				
		}
	
	});

	$('.buyAndroid').bind('click',function(){
		lineType = 3;
		isInborrowByLine = 1;
		$('.prompt3').hide();		
		$.clickBuyLineFucntion()			
	})

	$('.buyIphone4').bind('click',function(){
		lineType = 2;
		isInborrowByLine = 1;		
		$('.prompt3').hide();	
		$.clickBuyLineFucntion()	
	})

	$('.buyIphone5').bind('click',function(){
		lineType = 1;
		isInborrowByLine = 1;		
		$('.prompt3').hide();
		$('.prompt3').hide();	
		$.clickBuyLineFucntion()		
	})	

	$('.no').bind('click',function(){
		$('.prompt').hide();
		$('.promptBg').hide();
	})

	$('.nobuy').bind('click',function(){
		$('.prompt3').hide();	
		$('.promptBg').hide();
	})
})